package lk.icta.core.entity;

/**
 * @author Mahesha Kalpanie
 */
public enum WorkflowTask {
    //different people will perform in different Alienation methods under different no of stages
    //Ex: permit will have to be approved by DS and PLC

    //todo: put description in all three languages
    //0
    DETAILED_FORM_DATA_ENTRY("Land Application - Data Entry", "Data Entry","සවිස්තර  ඉල්ලුම් පත්‍ර - දත්ත ඇතුළත් කළ","Land Application - Data Entry"),
    //1
    DETAILED_FORM_APPROVED("Land Application - Approved", "Interview","සවිස්තර  ඉල්ලුම් පත්‍ර - අනුමත කළ","Land Application - Approved"), //by ords
    //2
    DETAILED_FORM_REJECTED("Land Application - Rejected", "Resubmit","සවිස්තර  ඉල්ලුම් පත්‍ර - ප්‍රතික්ෂේප කළ","Land Application - Rejected"),   //by ords
    //3
    INTERVIEW_DATA_ENTRY("Land Application - Interview Data Entry", "Interview","සවිස්තර  ඉල්ලුම් පත්‍ර - සම්මුඛ පරීක්ෂණය දත්ත ඇතුළත් කළ","Land Application - Interview Data Entry"),  //by lo
    //4
    INTERVIEW_COMPLETED("Land Application - Interview Completed", "Objection Handling","සවිස්තර  ඉල්ලුම් පත්‍ර - සම්මුඛ පරීක්ෂණය සම්පූර්ණ කළ","Land Application - Interview Completed"), // by lo ,application registration number generated
    //5
    OBJECTION_DATA_ENTRY("Land Application - Objection Data Entry", "Objection Handling","සවිස්තර  ඉල්ලුම් පත්‍ර - විරෝධතා හැසිරවීම දත්ත ඇතුළත් කළ","Land Application - Objection Data Entry"),  //by lo or slc input objection and attachmnets
    //6   todo- refactore - means no objections
    OBJECTION_HANDLING_COMPLETED("Land Application - No Objections", "Finalize as No Objections", "සවිස්තර  ඉල්ලුම් පත්‍ර - විරෝධතා නොමැති ", "Land Application - No Objections"), // by ords
    //7
    OBJECTION_HANDLING_APPROVED("Land Application - Objection Approved", "Finalize with Objections", "සවිස්තර  ඉල්ලුම් පත්‍ර - විරෝධතා හැසිරවීම අනුමත කළ", "Land Application - Objection Approved"), //by plc
    //8
    DETAILED_FORM_FINALIZED("Land Application - Finalized", "Allocate Lands", "සවිස්තර  ඉල්ලුම් පත්‍ර - අවසන් වූ", "Land Application - Finalized"),  //by ords - capture objections, finalize and complete by plc
    //9
    LAND_ALLOCATED("Land Application - Land Allocated", "Approve Land Allocation", "සවිස්තර  ඉල්ලුම් පත්‍ර - ඉඩම ඇමිණීම", "Land Application - Land Allocated"),
    //10
    LAND_ALLOCATION_APPROVED("Land Application - Land Allocation Approved", "Complete Application", "සවිස්තර  ඉල්ලුම් පත්‍ර - ඉඩම ඇමිණීම අනුමත කළ", "Land Application - Land Allocation Approved"),
    //11
    LAND_ALLOCATION_REJECTED("Land Application - Land Allocation Rejected", "Resubmit Land Allocation", "සවිස්තර  ඉල්ලුම් පත්‍ර - ඉඩම ඇමිණීම ප්‍රතික්ෂේප කළ", "Land Application - Land Allocation Rejected"), // release the land for reallocation
    //12
    ACCEPTED_AND_COMPLETED("Land Alienation - Accepted by applicant", "Approve Applicant Accepted Alienation","ඉඩම් බැහැර කිරීම - Accepted by applicant (si)","Land Alienation - Accepted by applicant"),  //lo - modify data and accepted by applicant
    //13
    REJECTED_AND_ARCHIVED("Land Alienation - Rejected by applicant", "Approve Applicant Rejected Alienation", "ඉඩම් බැහැර කිරීම - Rejected by applicant (si)", "Land Alienation - Rejected by applicant"),  //lo - modify data and rejected by applicant
    //14
    NOT_SUBMITTED_AND_ARCHIVED("Land Alienation - Not Received on Due Date", "Approve Alienation - Not Received on Due Date", "ඉඩම් බැහැර කිරීම - Not Received on Due Date (si)", "Land Alienation - Not Received on Due Date"),  //lo - not received by due date
    //15
    ACCEPTED_AND_COMPLETED_APPLICATION_APPROVED("Recommended Applications", "Approve Land Alienation", "සවිස්තර  ඉල්ලුම් පත්‍ර - නිර්දේශ කළ", "Recommended Applications"),  //applications in this state will be eligible to enter to the  work flow
    //16
    ACCEPTED_AND_COMPLETED_APPLICATION_REJECTED("Applicant Accepted Alienation - Rejected", "Resubmit Applicant Accepted Alienation","අයදුම්කරු බාරගත් ඉල්ලුම් පත්‍ර -  ප්‍රතික්ෂේප කළ ", "Applicant Accepted Alienation - Rejected"),
    //17
    REJECTED_AND_ARCHIVED_APPLICATION_APPROVED("Applicant Rejected Alienation - Approved", "","Applicant Rejected Alienation - Approved (si)", "Applicant Rejected Alienation - Approved"),
    //18
    REJECT_REJECTED_AND_ARCHIVED_APPLICATION("Applicant Rejected Alienation - Rejected", "Resubmit Applicant Rejected Alienation", "Applicant Rejected Alienation - Rejected (si)", "Applicant Rejected Alienation - Rejected"),
    //19
    APPROVE_NOT_SUBMITTED_APPLICATION("Canceled Alienation not responded on Due Date - Approved", "","Canceled Alienation not responded on Due Date - Approved (si)","Canceled Alienation not responded on Due Date - Approved"),
    //20
    REJECT_NOT_SUBMITTED_APPLICATION("Canceled Alienation - Applicant not responded on Due Date - Rejected", "Resubmit Alienation - Applicant not responded on Due Date", "Canceled Alienation - Applicant not responded on Due Date - Rejected (si)", "Canceled Alienation - Applicant not responded on Due Date - Rejected"),
    //21
    SIGNED_PRINTED_ALIENATION_DOCUMENT("Alienation Documents - Signed", "Approve Alienation Document","ඉඩම් බැහැර කිරීමේ ලේඛන - අත්සන් කළ","Alienation Documents - Signed"),
    //22
    UNSIGNED_PRINTED_ALIENATION_DOCUMENT("Alienation Documents - Unsigned", "Resubmit Unsigned Alienation", "ඉඩම් බැහැර කිරීමේ ලේඛන - අත්සන් නොකළ", "Alienation Documents - Unsigned"),
    //23
    SIGNED_ALIENATION_DOCUMENT_APPROVED("Singed Alienation Documents - Approved", "Inform to the Candidates", "අත්සන් කළ ඉඩම් බැහැර කිරීමේ ලේඛන-  අනුමත කළ", "Singed Alienation Documents - Approved"),
    //24
    CONDITION_SATISFIED("Alienation Documents - Condition Satisfied", "Handover Alienation Document", "ඉඩම් බැහැර කිරීමේ ලේඛන - කොන්දේසි සම්පූර්ණ කළ", "Alienation Documents - Condition Satisfied"),
    //25
    ACCEPTED_LONG_TERM_LEASE("Applicant Accepted Land Applications - Approved", "","අයදුම්කරු බාරගත් ඉල්ලුම් පත්‍ර - අනුමත කළ", "Applicant Accepted Land Applications - Approved"), //todo: accepted and approved
    //26
    ACCEPTED_GRANT("Applicant Accepted Land Applications - Approved", "","අයදුම්කරු බාරගත් ඉල්ලුම් පත්‍ර - අනුමත කළ", "Applicant Accepted Land Applications - Approved"),
    //27
    ACCEPTED_RELEASING_TO_DEPARTMENT("Applicant Accepted Land Applications - Approved", "","අයදුම්කරු බාරගත් ඉල්ලුම් පත්‍ර - අනුමත කළ", "Applicant Accepted Land Applications - Approved"),
    //28
    ACCEPTED_VESTING_ORDER("Applicant Accepted Land Applications - Approved", "","අයදුම්කරු බාරගත් ඉල්ලුම් පත්‍ර - අනුමත කළ", "Applicant Accepted Land Applications - Approved"),
    //29
    ACCEPTED_SPECIAL_GRANT("Applicant Accepted Land Applications - Approved", "", "අයදුම්කරු බාරගත් ඉල්ලුම් පත්‍ර - අනුමත කළ", "Applicant Accepted Land Applications - Approved"),
    //30
    APPROVED("Alienation Recommended", "Approve Alienation","ඉඩම් බැහැර කිරීම නිර්දේශ කළ", "Alienation Recommended"),  //recomended
    //31
    REJECTED("Alienation Rejected", "Resubmit Land Alienation", "ඉඩම් බැහැර කිරීම ප්‍රතික්ෂේප කළ", "Alienation Rejected" ),
    //32
    FULLY_APPROVED("Alienation Approved", "Sign Alienation Document", "ඉඩම් බැහැර කිරීම අනුමත කළ", "Alienation Approved"),
    //33
    ALIENATION_APPROVED_BY_LC("Alienation Approved by LC", "Approve by ORLP", "Alienation Approved by LC (si)", "Alienation Approved by LC");


    private String action;
    private String nextAction;
    private String actionInSi;
    private String actionInTa;

    WorkflowTask(String action, String nextAction,String actionInSi,String actionInTa) {
        this.action = action;
        this.nextAction = nextAction;
        this.actionInSi = actionInSi;
        this.actionInTa = actionInTa;
    }

    public String getAction() {
        return action;
    }

    public void setAction(String action) {
        this.action = action;
    }

    public String getNextAction() {
        return nextAction;
    }

    public void setNextAction(String nextAction) {
        this.nextAction = nextAction;
    }
    public String getActionInSi() {
        return actionInSi;
    }

    public void setActionInSi(String actionInSi) {
        this.actionInSi = actionInSi;
    }

    public String getActionInTa() {
        return actionInTa;
    }

    public void setActionInTa(String actionInTa) {
        this.actionInTa = actionInTa;
    }
}
